/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controle;

import java.sql.SQLException;
import java.util.List;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import modelo.InstituicaoBO;
import modelo.ObjetivoBO;
import persistencia.InstituicaoDAO;
import persistencia.ObjetivoDAO;

/**
 *
 * @author rodrigo
 */
@Named(value = "objetivoMB")
@RequestScoped
public class ObjetivoMB {

    private ObjetivoBO objetivoBO;
    private ObjetivoDAO objetivoDAO;
    private List<InstituicaoBO> instituicoes;
    private List<ObjetivoBO> objetivos;
    private InstituicaoDAO instituicaoDAO;

    public ObjetivoMB() throws SQLException {
        
        objetivoBO = new ObjetivoBO();
        objetivoBO.setStatus(1);
        objetivoDAO = new ObjetivoDAO();
        objetivos = this.listarObjetivos(); 
        instituicaoDAO = new InstituicaoDAO();
        this.instituicoes = instituicaoDAO.listarInstituicao("SELECT * FROM instituicao");
        

        
        
    }

    public List<InstituicaoBO> getInstituicoes() {
        return instituicoes;
    }

    public void setInstituicoes(List<InstituicaoBO> instituicoes) {
        this.instituicoes = instituicoes;
    }


    public ObjetivoBO getObjetivoBO() {
        return objetivoBO;
    }

    public void setObjetivoBO(ObjetivoBO objetivoBO) {
        this.objetivoBO = objetivoBO;
    }
    
    

    public List<ObjetivoBO> getObjetivos() {
        return objetivos;
    }

    public void setObjetivos(List<ObjetivoBO> objetivos) {
        this.objetivos = objetivos;
    }
    
    public String salvar() throws SQLException {

        if (objetivoBO.getIdObjetivo()> 0) {
            this.objetivoDAO.alterarObjetivo(objetivoBO);
        } else {
            this.objetivoDAO.inserirObjetivo(objetivoBO);
        }

        return "CadastrarObjetivo";

    }
    
    public void novo() throws SQLException {

        objetivoBO = new ObjetivoBO();
    }

    public void excluir(ObjetivoBO objetivoBO) throws SQLException {
        this.objetivoDAO.excluirObjetivo(objetivoBO);
        objetivos = this.listarObjetivos();
    }

    private List<ObjetivoBO> listarObjetivos() throws SQLException {
        
        return this.objetivoDAO.listarObjetivos("SELECT * FROM objetivo");
    }
    
    public String editar(ObjetivoBO objetivoBO) throws SQLException {

        this.objetivoBO = objetivoBO;

        return "CadastrarObjetivo";
    }
    
 
   

}
